package it.poste.il.compensatore.service;

import it.poste.il.compensatore.entities.SDPRequest;

import java.util.List;

public interface SDPRequestService {

	/**
	 * Method that retrieve the sdp request by id.
	 * @param id Id to identify the sdp request.
	 * @return SDPRequest The entity sdp request.
	 */
	public SDPRequest retrieveByID(Long id);

	/**
	 * The list of all sdp request by filter.
	 * @param entityFilter The entity sdp request to use to filter.
	 * @return List The list of sdp request.
	 */
	public List<SDPRequest> loadByFilter(SDPRequest entityFilter);

	/**
	 * Method that retrieve the sdp request by a filter.
	 * @param entityFilter The entity sdp request to use to filter.
	 * @return SDPRequest The entity sdp request.
	 */
	public SDPRequest loadByReq(SDPRequest entityFilter);

	/**
	 * The list of all sdp request by filter.
	 * @param entityFilter The entity sdp request to use to filter.
	 * @return List The list of sdp request from the last sdp request.
	 */
	public List<SDPRequest> loadLastCounter(SDPRequest entityFilter);

	/**
	 * The list of all sdp request.
	 * @return List The list of sdp request.
	 */
	public List<SDPRequest> retrieveAll();

	/**
	 * Method that save the sdp request.
	 * @param sdpRequest sdp request to save.
	 * @return SDPRequest The sdp request saved.
	 */
	public SDPRequest save(SDPRequest sdpRequest);

	/**
	 * Update the sdp request.
	 * @param sdpRequest SDPRequest to update.
	 * @return void
	 */
	public void update(SDPRequest sdpRequest);
	
	/**
	 * Delete the sdp request.
	 * @param sdpRequest SDPRequest to delete.
	 * @return void
	 */
	public void delete(SDPRequest sdpRequest);
}
